The present invention relates generally to the field of computer user interfaces, and more particularly to methods and systems for providing context-based user interfaces on a host computer system.
The user of a computer typically communicates with the computer""s operating system and applications via user interfaces (UIs) specifically designed for each operating system function or application. For example, an Internet browser will have a toolbar, drop down menus, a xe2x80x9cfavoritesxe2x80x9d list, and the like. In general, each UI is built from a set of UI elements that provide the application with the information needed to build the user interface. These elements provide information such as the user""s xe2x80x9cfavoritesxe2x80x9d list, emailbox, toolbars, default directories, etc.
Typically, a user interface is built from the same set of elements every time the user runs a given application or operating system function or utility, unless the user manually changes one or more of the elements. For example, in connection with an Internet browser, the user may have a favorites list that includes Universal Resource Locators (URLs) for certain preferred Web sites the user accesses frequently. When the user initiates the browser residing on the host computer, the user interface that is built includes, among other things, the user""s favorites list in a format the user can access and manipulate. The same favorites list is displayed every time the user initiates the browser and clicks on the xe2x80x9cfavoritesxe2x80x9d button on the toolbar. If, however, the user changes the favorites list during a particular session (e.g., adds, modifies, or deletes an entry in the favorites list), the changes are saved and, the next time the user initiates the browser and clicks on the xe2x80x9cfavoritesxe2x80x9d button, the new favorites list is displayed. Thus, the user interface for a particular application remains the same, independent of the location or role of the user, unless the user manually changes it.
It would be beneficial to the user, however, if the host computer system were to change the user interface dynamically depending on the xe2x80x9ccontextxe2x80x9d of the user experience. For example, a user may generally desire to access a certain set of Internet sites while in the office and a different set of sites while at home. In such a situation, it would benefit the user if the user were able to define an xe2x80x9cat homexe2x80x9d favorites list, for example, which, in general, would be different from his xe2x80x9cat workxe2x80x9d favorites list. In general, it would improve the user experience if the applications running on the host computer system were to build user interfaces based on elements that are selected to provide information specifically tailored to the needs of the user as the context of the user experience changes.
The present invention provides improved methods and systems for presenting information to the user of a host computer system. According to the invention, the user interface provided to the user is determined by the context of the current user experience. The context of the user experience can be based on, for example, the role the user is playing at a particular time or on a particular day (e.g., whether the user is expected to be working or relaxing),or the current location of the user (e.g., whether the user is most likely at home, at work, or roaming).
According to the present invention, a set of contexts is defined, each of which is associated with one or more user interface (UI) elements that can be used to build a user interface most suitable to that context. These UI elements include such information as user preferences, favorites lists, toolbars, default directories, etc. Each of the UI elements corresponds to one or more of the predefined contexts. When the user logs in, a contextual engine residing in the host computer determines the context of the current experience, and provides a user interface built from the UI elements associated with that context.
For example, the contextual engine of the present invention can determine whether the user is logged on via a dial-up connection (indicating that the user is, most likely, at home), or via a TCP/IP connection (indicating that the user is, most likely, at work). The contextual engine communicates with the host computer""s operating system to determine certain information about the host computer. For example, the contextual engine can use an operating system API to determine whether the host computer is docked or undocked, whether an external hard drive is attached to the host computer, whether the user has connected to a network, etc. If the contextual engine determines that the user is at home, the favorites list, toolbars, default directories, etc., can be set to those associated with the context of the user""s being xe2x80x9cat home.xe2x80x9d If the contextual engine determines that the user is at work, on the other hand, the content provided corresponds to the context of the user""s being xe2x80x9cat work.xe2x80x9d
These and other features of the present invention are described in greater detail below.